#============== 导入模块 ===============
import jwt
import datetime   # 设定过期时间
from django.conf import  settings  # 获取HS256加密所需的一个key


def create_token(payload, timeout=2):
    """
    在jwt认证中获得一个jwt token并返回
    :param payload: 提供需要返回的数据【dict】
    :param timeout: 提供超时时间，默认是3
    :return:
    """
    # 获取key
    key = settings.SECRET_KEY

    # 构造header
    header = {
        'tye': 'jwt',
        'alg': 'HS256'
    }

    # 为payload添加一个超时时间的属性
    payload['exp'] = datetime.datetime.utcnow() + datetime.timedelta(minutes=timeout)

    # 生成token
    token = jwt.encode(payload=payload, key=key, algorithm="HS256", headers=header).decode("utf-8")
    # 返回
    return token